Amazon SageMaker StudioのTerminal上のAWS CLIを最新のバージョン2にアップデートしてみた
はじめに
Amazon SageMaker StudioのSystem terminal
で、AWS CLIを利用する場合、デフォルトでは、CLIバージョン1です。
Amazon EC2 インスタンスもCLIをバージョン2にアップデートしたことはありましたが、勝手が異なり色々詰まりましたので、今回方法をまとめました。
最新バージョンをインストール
System terminal
を起動します。
$ aws --version aws-cli/1.27.141 Python/3.9.15 Linux/4.14.314-237.533.amzn2.x86_64 botocore/1.29.141
現在は、CLIバージョン1と分かります。
デフォルトですとunzip
コマンドが使えないため、インストールします。
$ pwd /home/sagemaker-user $ sudo yum install -y unzip
CLIバージョン2の最新パッケージをダウンロードします。ダウンロードに数分かかります。
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" $ unzip awscliv2.zip replace aws/THIRD_PARTY_LICENSES? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
インストールを実行すると、/usr/local/aws-cli
ディレクトリが作成できないとエラーが出ますので、ディレクトリを先に作成します。
$ ./aws/install --update mkdir: cannot create directory ‘/usr/local/aws-cli’: Permission denied $ sudo mkdir /usr/local/aws-cli $ ls -la /usr/local/aws-cli total 0 drwxr-xr-x 2 root root 6 Jul 16 02:23 . drwxr-xr-x 1 root root 21 Jul 16 02:23 ..
/usr/local/aws-cli
ディレクトリの権限を変えます
$ sudo chown -hR sagemaker-user:root /usr/local/aws-cli $ sudo chmod 775 /usr/local/aws-cli $ ls -la /usr/local/aws-cli total 0 drwxrwxr-x 2 sagemaker-user root 6 Jul 16 02:23 . drwxr-xr-x 1 root root 21 Jul 16 02:23
which コマンドを使用して、awsコマンドのフルパスを確認します。
$ aws --version aws-cli/1.27.141 Python/3.9.15 Linux/4.14.314-237.533.amzn2.x86_64 botocore/1.29.141 $ which aws /opt/conda/bin/aws $ ls -la /opt/conda/bin/aws -rwxrwxr-x 1 sagemaker-user users 820 Jul 14 08:04 /opt/conda/bin/aws
インストールコマンドは、./aws/install
です。
インストールコマンドを実行するとデフォルトで、すべてのファイルが/usr/local/aws-cli
にインストールされます。
./aws/install
コマンドのオプションは、以下です。
--install-dir
または-i
- すべてのファイルのコピー先のディレクトリを指定します。
- デフォルトは
/usr/local/aws-cli
ですので、指定しなくてもよいです。
--bin-dir
または-b
- フルパスを指定しなくてもawsコマンドが実行できるよう、awsファイルのシンボリックリンクを指定します。
- 指定したディレクトリへの書き込み権限が必要です。
- パスにすでに存在するディレクトリへのシンボリックリンクを作成すると、インストールディレクトリをユーザーの
$PATH
変数に追加する必要はありません --bin-dir
を指定するためのパスの確認は、which aws
コマンドで確認できます。- デフォルト値は
/usr/local/bin
ですので、指定する必要があります。
$ ./aws/install --bin-dir /opt/conda/bin --install-dir /usr/local/aws-cli --update You can now run: /opt/conda/bin/aws --version $ /usr/local/aws-cli/v2/2.13.1/bin/aws --version aws-cli/2.13.1 Python/3.11.4 Linux/4.14.314-237.533.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off $ /opt/conda/bin/aws --version aws-cli/2.13.1 Python/3.11.4 Linux/4.14.314-237.533.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off $ aws --version aws-cli/2.13.1 Python/3.11.4 Linux/4.14.314-238.539.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off $ ls -la /opt/conda/bin/aws lrwxrwxrwx 1 sagemaker-user users 37 Jul 16 08:04 /opt/conda/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws
CLIの最新2バージョンがインストールできました!
コマンドも利用できることが確認できました。
$ aws sagemaker describe-domain --domain-id ドメインID { "DomainArn": "arn:aws:sagemaker:ap-northeast-1:アカウントID:domain/ドメインID",
ダウングレードする方法
CLIのバージョンを2.0.30
にダウングレードする方法を紹介します。
$ pwd /home/sagemaker-user
CLIのバージョン2.0.30
をダウンロードします。
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip" $ unzip awscliv2.zip Archive: awscliv2.zip replace aws/README.md? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
インストールし、awsコマンドのバージョンを`2.0.30に変えます。バージョンが変わったことを確認します。
$ ./aws/install --bin-dir /opt/conda/bin --install-dir /usr/local/aws-cli --update You can now run: /opt/conda/bin/aws --version $ aws --version aws-cli/2.0.30 Python/3.7.3 Linux/4.14.314-238.539.amzn2.x86_64 botocore/2.0.0dev34
ダウンロードされたパスを確認します。
$ ls -la /usr/local/aws-cli/v2/ total 0 drwxr-xr-x 4 sagemaker-user users 49 Jul 16 08:46 . drwxrwxr-x 3 sagemaker-user root 16 Jul 16 08:04 .. drwxr-xr-x 4 sagemaker-user users 29 Jul 16 08:46 2.0.30 drwxr-xr-x 4 sagemaker-user users 29 Jul 16 08:04 2.13.1 lrwxrwxrwx 1 sagemaker-user users 28 Jul 16 08:46 current -> /usr/local/aws-cli/v2/2.0.30
CLIのバージョン2.0.30
にダウングレードし、awsコマンドに反映できました!